Method and Apparatus for Validation of Targeted Advertising Data

ABSTRACT

A system is configured to receive a product feed including one or more products, receive a plurality of transaction records including one or more transactions, for each transaction, generate an attribution report, wherein the attribution report attributes each transaction to a publisher, associate a publisher with each of the one or more transactions, associate each product of the product feed with the transactions, for each of the one or more products of the product feed, generate a product profile, the product profile including one or more variables, apply a commission rule based on the one or more variables of the product profile and the attribution report, obtain an analytics report including transaction records corresponding to an associated advertisement associated with the advertiser, generate the attribution report based on the analytics report, the attribution report providing an indication associating a publisher with a completed transaction; and validate the analytics report.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority from and is a continuation-in-part of U.S. patent application Ser. No. 16/916,759, which was filed on Jun. 30, 2020, which is a continuation of U.S. patent application Ser. No. 16/057,134, which was filed on Aug. 7, 2018, and is now U.S. Pat. No. 10,733,632, the entire contents of each of which are hereby incorporated herein by reference.

BACKGROUND Technical Field Description of the Related Art

The present disclosure relates generally to electronic devices, and more particularly to targeted advertising.

DESCRIPTION OF THE RELATED ART

Online advertising is a form of marketing that uses the Internet to deliver promotional marketing messages to consumers. Typically, an online advertising system includes at least the following entities: a publisher, an advertiser, and an online advertising platform. As the name suggests, publishers may be entities that display online ads on their websites as a means of obtaining revenue. Advertisers may be businesses that benefit from the ads being displayed, and which pay a fee for the ads to be displayed. Advertising platforms may be entities that act as intermediaries that connect publishers to advertisers and determine the commissions which the advertisers owe the publishers. However, at times, advertising platforms may use incomplete data when calculating the commissions which advertisers owe to publishers and this may result in the commissions being calculated incorrectly. For this reason, the need exists for techniques, processes, and systems that verify the accuracy of commissions calculated by advertising platforms, as well as the accuracy of data used by the advertising platforms as a basis for the calculation of the commissions.

Nothing in the background section shall be construed as an admission of prior art unless otherwise noted.

SUMMARY

According to aspects of the disclosure, a system may comprise: a memory and at least one processor operatively coupled to the memory, the at least one processor being configured to: receive a product feed including one or more products; receive a plurality of transaction records including one or more transactions; for each of the one or more transactions, generate an attribution report, wherein the attribution report attributes each of the one or more transactions to a publisher; associate a publisher with each of the one or more transactions; associate each of the one or more products of the product feed with the one or more transactions; for each of the one or more products of the product feed, generate a product profile, the product profile including one or more variables; apply a commission rule based on the one or more variables of the product profile and the attribution report; obtain an analytics report including one or more transaction records corresponding to an associated advertisement associated with the advertiser; generate the attribution report based on the analytics report, the attribution report providing an indication associating a publisher with a completed transaction; and validate the analytics report, wherein the validation of the analytics report includes a determination of an error in the analytics report and correcting the analytics report. The at least one processor may be further configured to provide a user interface for a publisher to provide the commission rule. The user interface may provide one or more inputs for the publisher to select variables for the product profile. The one or more products may be featured in an advertisement, the at least one process further configured to: generate an advertisement placement profile for each of the one or more products. The user interface may provide one or more inputs for the publisher to select variables for the advertisement placement profile. The at least one processor may be further configured to: select an affiliate platform; integrate the affiliate platform with a reporting tool; recruit one or more publishers through the affiliate platform; and fund publisher accounts via the affiliate platform. The reporting tool may provide data for the attribution report. The product feed may include data that automatically results in the product profile being generated. The commission rule may include a set of logic including a plurality of functions for calculating a commission for the publisher, wherein one of the plurality of functions for calculating the commission is selected based on the values of variables associated with the product profile. The commission rule may include logic that is additionally based on at least the advertisement placement profile.

The system may be further configured to: select an affiliate platform; integrate the affiliate platform with a reporting tool; recruit one or more publishers through the affiliate platform; and fund publisher accounts via the affiliate platform.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of an example of a system, according to aspects of the disclosure;

FIG. 2 is a diagram of an example of a client device, according to aspects of the disclosure;

FIG. 3 is a diagram of an example of an attribution verification platform, according to aspects of the disclosure;

FIG. 4 is a diagram of an example of an attribution report, according to aspects of the disclosure;

FIG. 5 is a diagram of an example of an analytics report, according to aspects of the disclosure;

FIG. 6 is a diagram of an example of a corrected attribution report, according to aspects of the disclosure;

FIG. 7 is a diagram of an example of a form that is part of a user interface of the attribution verification platform shown in FIG. 3 , according to aspects of the disclosure;

FIG. 8 is a diagram of an example of a form that is part of a user interface of the attribution verification platform shown in FIG. 3 , according to aspects of the disclosure;

FIG. 9 is a flowchart of an example of a process, according to aspects of the disclosure;

FIG. 10 is a flowchart of an example of example of a sub-process associated with the process of FIG. 9 , according to aspects of the disclosure;

FIG. 11 is a flowchart of an example of a sub-process associated with the process of FIG. 9 , according to aspects of the disclosure;

FIG. 12 is a flowchart of an example of a process, according to aspects of the disclosure.

FIG. 13 is a diagram of an example of a system, according to aspects of the disclosure;

FIG. 14 is a diagram of an example of an attribution verification platform, according to aspects of the disclosure;

FIG. 15 is a diagram of an example of an attribution report, according to aspects of the disclosure;

FIG. 16 is a flowchart of an example of a process, according to aspects of the disclosure;

FIG. 17 is a diagram of an example of a form that is part of the user interface of the attribution verification platform of FIG. 14 , according to aspects of the disclosure;

FIG. 18 is a diagram of an example of a dynamic commission engine, according to aspects of the disclosure;

FIG. 19 is a diagram of an example of a form that is part of a user interface of the attribution verification platform shown in FIG. 3 , according to aspects of the disclosure;

FIGS. 20A-20E UI components shown in tabular form;

FIG. 21A-21B are diagrams of an example of a commission report;

FIG. 22 is a flowchart of a method of calculating a commission according to aspects of the present disclosure; and

FIG. 23 is a flowchart of a method for integrating an affiliate platform with a reporting tool for the attribution verification platform and/or the dynamic commission engine.

DETAILED DESCRIPTION

According to one aspect of the disclosure, an attribution verification platform (AVP) is provided that verifies billing statements and other records which an advertising platform issues to an advertiser. The AVP may include an online frontend where the advertiser can register with the AVP and provide: (i) a first credential for retrieving the billing statements from the advertising platform, and (ii) second credential for retrieving an analytics report from an analytics provider. The AVP may then use the first credential to retrieve a billing statement from the advertising platform. In addition, the AVP may use the second credential to retrieve the analytics report from the analytics provider. Afterwards, the AVP may use the analytics report to confirm the accuracy of charges and other data that are listed in the billing statement issued by the advertising platform. When errors are detected, the AVP may notify the advertiser or advertising platform of the errors in order to prevent the advertiser from being overcharged.

According to another aspect of the disclosure, an attribution verification platform (AVP) is provided that generates billing statements on behalf of an advertiser. The AVP may include an online frontend where the advertiser can register with the AVP and provide one or more attribution rules that are used for calculating commissions and advertising platform fees resulting from the presentation of one or more advertisements on behalf of the advertiser. In operation, the AVP may retrieve an analytics report from an analytics provider and use information that is provided in the analytics report to generate a billing statement based on the attribution rules. In some respects, using attribution rules that are provided directly by the advertiser may help ensure the accuracy of any billing reports generated by the AVP and prevent the advertiser from being overcharged.

FIG. 1 is a diagram of an example of a system 100, according to aspects of the disclosure. As illustrated, the system 100 may include one or more publishing platforms 102, one or more client devices 104, an advertiser client device 106, an advertising platform 108, an analytics platform 110, and an analytics verification platform (AVP) 112 that are connected to one another via a communications network 114. The communications network 114 may include one or more of the Internet, a local area network (LAN), a wide area network (WAN), telephone network, a cellular network, a cable TV distribution network, and/or any other suitable type of network. Although in the present example, the communications network 114 is the Internet, it will be understood that the present disclosure is not limited to any specific type of network (or networks) for connecting the nodes in the system 100 to one another. For example, in some implementations, the communications network 114 may be a restricted-access network, such as the network of a cable TV provider that is used for the distribution of cable TV among a plurality of subscribers.

The publishing platforms 102 may include various platforms for the distribution of content over the communications network 114. Any of the publishing platforms 102 may include one or more servers that are configured to provide original content, as well as advertisements alongside the original content. As noted above, any of the publishing platforms 102 may include a news website, an online gaming provider, a video streaming service, an audio streaming service, and/or any other suitable type content provider. The plurality of client devices 104 may include one or more of a smartphone, a desktop computer, a smart appliance (e.g., a refrigerator), an automotive entertainment system, a digital media player, and/or any other suitable type of device.

Any of the client devices 104 may be configured to receive content and accompanying advertisements from one or more of the publishing platforms 102 and present (e.g., display or otherwise render) the content and advertisements to a user. Any of the advertisements may include at least one of a still image, a video clip, a sound clip, etc. In some implementations, any of the advertisements, when selected by the user, may include a URL and/or another address embedded in it. When the advertisement is selected by the user, the advertisement may cause the client device 104 displaying the advertisement to open a web page belonging to an advertiser associated with the advertisement, where the user can complete a transaction, such as a purchase of a product and/or subscription for a service. As used throughout the disclosure, the phrase “selecting an advertisement” may include any action that causes the client device 104 presenting the advertisement to execute a link, address, and/or other code that is present on the advertisement and display a website or another portal where the user can complete a transaction. In some implementations, an advertisement may be selected by clicking on the advertisement. Additionally or alternatively, in some implementations, an advertisement may be selected via voice command or by activating a button (or another input component) associated with the advertisement. Any of the client devices 104 may be implemented using at least some of the hardware shown in FIG. 2 , which is discussed further below.

The advertiser client device 106 may include an electronic device for interacting with the advertising platform 108 and the AVP 112. The advertiser client device 106 may include a laptop, a desktop, a smartphone, and/or any other suitable type of computing device. In operation, the advertiser client device 106 may be configured to establish a connection with the advertising platform 108 and transmit a request for the display of one or more advertisements on any of the publishing platforms 102. In response to the request, the advertising platform 108 may connect to at least one publishing platform 102 and cause the publishing platform 102 to display one or more advertisements on behalf of the advertiser associated with the advertiser client device 106.

The advertising platform 108 may include one or more servers that are configured to act as an intermediary between the publishing platform and the advertiser. More particularly, the servers may be configured to perform at least some of the following tasks: (i) receive, over the communications network 114, an order for the placement of an advertisement from the advertiser client device; (ii) cause at least one of the publishing platforms 102 to display the advertisement; (iii) obtain or collect analytics identifying one or more events (e.g., transactions) that are associated with the advertisement; (iv) generate a report based on the analytics that identifies one or more commissions and fees that are payable by the advertiser as a result of the events having occurred; (v) transmit the report to the advertiser client device 106 (or another device) for review by the advertiser; and (vi) receive a payment from the advertiser that is remitted using the advertiser client device 106 (or another device).

The analytics platform 110 may include one or more servers that are configured to collect and provide analytics related to the presentation of advertisements placed by the advertising platform 108 on one or more publishing platforms 102. The analytics platform 110 may be the same or similar to the GOOGLE ANALYTICS system that is currently fielded by GOOGLE, and the ADOBE ANALYTICS system fielded by ADOBE.

The AVP 112 may include one or more servers that are configured to receive the report generated by the advertising platform, receive an analytics report provided by the analytics platform 110, compare the two reports to identify errors in the report issued by the advertising platform, and act to prevent the advertiser from being overcharged as a result of the errors. In some implementations, the action may include generating a supplemental report that lacks the errors that are present in the report generated by the advertising platform but is otherwise the same or similar to the report generated by the advertising platform. Additionally or alternatively, in some implementations, correcting the errors may include transmitting an indication of the errors to at least one of the advertising platform 108 and the advertiser client device 106 (and/or another device that is associated with the advertiser). Additionally or alternatively, in some implementations, correcting the errors may include transmitting corrected data (e.g., corrected commission amounts, etc.) that is intended to replace incorrect data (e.g., incorrect commission amounts) that is part of the report provided by the advertising platform 108.

FIG. 2 is a diagram of an example of a client device 200, according to aspects of the disclosure. As discussed above, the client device 200 may be the same or similar to the any of the client devices 104 and/or the advertiser client device 106. More particularly, the client device 200 may include a processor 201, a communications interface 203, a memory 205, a touch panel 207, and a display 209. According to aspects of the disclosure, the processor 201 may include any suitable type of processing circuitry, such as a general-purpose processor (e.g., an ARM-based processor), an application-specific integrated circuit (ASIC), or a Field-Programmable Gate Array (FPGA). The communications interface 203 may include any suitable type of communications interface, such as a Wi-Fi interface, an Ethernet interface, a Long-Term Evolution (LTE) interface, a Bluetooth Interface, an Infrared interface, etc. The memory 205 may include any suitable type of volatile and non-volatile memory, such as random-access memory (RAM), read-only memory (ROM), flash memory, cloud storage, or network accessible storage (NAS), etc. The touch panel 207 may include any suitable type of touch panel, such as a capacitive or resistive touch panel. The display 209 may include any suitable type of display such as a liquid crystal display (LCD), a light-emitting diode (LED) display, or an active-matrix organic light-emitting diode (AMOLED) display. In some implementations, the touch panel 207 may be layered onto the display 209 to form a touchscreen. Although not shown, the client device 200 may include additional (or alternative) input devices, such as a microphone, a keyboard, a mouse, etc.

FIG. 3 is a diagram of an example of the AVP 112. As illustrated, the AVP 112 includes a processor 301, a communications interface 303, and a memory 305. According to aspects of the disclosure, the processor 301 may include any suitable type of processing circuitry, such as a general-purpose processor (e.g., an ARM-based processor), an application-specific integrated circuit (ASIC), or a Field-Programmable Gate Array (FPGA). The communications interface 303 may include any suitable type of communications interface, such as a WiFi interface, an Ethernet interface, a Long-Term Evolution (LTE) interface, a Bluetooth Interface, an Infrared interface, etc. The memory 305 may include any suitable type of volatile and non-volatile memory, such as random-access memory (RAM), read-only memory (ROM), a hard disk (HD), a solid-state drive (SSD), a CD-ROM, flash memory, cloud storage, or network accessible storage (NAS).

In some implementations, the memory 305 may store an advertiser profile 307. The advertiser profile 307 may include an advertiser ID 309, an advertising platform data record 311, an analytics platform data record 313, one or more attribution rules 315 associated with the advertiser, and one or more rules 316 for detecting whether a record in an attribution report and one or more records in an analytics report are both associated with the same transaction, one or more rules for 317 for detecting whether a record in the attribution report is invalid, and additional information 318 specified by the advertiser when the advertiser profile 307 is created. As is further discussed with respect to FIGS. 7 and 8 , the additional information may include an identification of a period during which the advertiser will be provided with a service by the AVP 112 and an indication of one or more types of errors which will be detected when a report issued by the advertising platform 108 is validated by the AVP 112.

The advertiser ID 309 may include at least one of a number, a string, or an alphanumerical string that is capable of identifying an advertiser who has signed up for the service(s) provided by the AVP 112. The advertiser may be a person, a business, a charity, and/or any other entity that has signed up with the advertising platform 108 to place online ads with various publishing platforms 102 that operate on the communications network 114.

The advertising platform data record 311 may include one or more of an ID corresponding to the advertising platform 108 and one or more credentials for retrieving an attribution report 321 from the advertising platform 108. The advertising platform ID may include any suitable number, string, and/or alphanumerical identifier that is capable of identifying the advertising platform 108. In some implementations, the advertising platform ID may include a URL and/or another type of address that can be used to connect to the advertising platform 108 and retrieve the attribution report 321 (which is generated by the advertising platform 108). The advertising platform credentials may include one or more of a username, a secure key, a password, and/or any other suitable type of credential that is needed by the AVP 112 to authenticate itself before the advertising platform 108 in order for it to be permitted to retrieve the attribution report 321 from the advertising platform 108.

The analytics platform data record 313 may include one or more of an ID corresponding to the analytics platform 110 and one or more credentials for retrieving an analytics report 323 from the analytics platform 110. The analytics platform ID may include any suitable number, string, and/or alphanumerical identifier that is capable of identifying the analytics platform 110. In some implementations, the analytics provider ID may include a URL and/or another type of address that can be used by the AVP 112 to connect to the analytics platform 110 and retrieve the analytics report 323 (which is generated by the analytics platform 110). The advertising platform credentials may include one or more of a username, a secure key, a password, and/or any other suitable type of credential that is needed by the AVP 112 to authenticate itself before the analytics platform 110 before it is permitted to retrieve the analytics report from the analytics platform. Although in the present example, the analytics report 323 is downloaded by the AVP 112 from the analytics platform 110 using a URL-based API, the present disclosure is not limited to any specific method for retrieving the analytics report 323. For example, the analytics report 323 may be downloaded by the AVP 112 from an FTP server or pushed onto the AVP 112 by the advertising platform 110, without the AVP 112 having to request it beforehand.

The attribution rules 315 may include one or more rules for attributing commissions that are due to be paid by the advertiser for transactions that have resulted from the presentation of advertisements on any of the publishing platforms 102. Additionally or alternatively, the attribution rules 315 may include one or more rules for attributing fees payable to the advertising platform 108 for the placement of advertisements on any of the publishing platforms 102.

In some implementations, any of the attribution rules may include logic for calculating a fee that is owed by the advertiser to the advertising platform 108. In some implementations, the logic may include a mathematical expression. Additionally or alternatively, in some implementations, the logic may include one or more processor-executable instructions (e.g., a script), which when executed by at least one processor causes the at least one processor to calculate the fee. In some implementations, the processor-executable instructions may include at least two different expressions (e.g., conditional expressions) for calculating the fee. For example, the first expression may provide for the fee to be calculated using a first formula (which is a function of a first transaction attribute value), when the first transaction attribute value is available in the analytics report 323. As another example, the second expression may provide for the fee to be calculated using a second formula (which is a function of a second transaction attribute value, and which does not use the first attribute value), when the first transaction attribute value is not available in the analytics report 323 and the second transaction attribute value is available in the analytics report 323.

Additionally or alternatively, in some implementations, any of the attribution rules may include logic for calculating a commission that is owed by the advertiser to one or more publishing platforms. In some implementations, the logic may include a mathematical expression. Additionally or alternatively, in some implementations, the logic may include one or more processor-executable instructions (e.g., a script), which when executed by at least one processor causes the at least one processor to calculate the commission. In some implementations, the processor-executable instructions may include at least two different expressions (e.g., conditional expressions) for calculating the commission. For example, the first expression may provide for the commission to be calculated using a first formula (which is a function of a first transaction attribute value), when the first transaction attribute value is available in the analytics report 323. As another example, the second expression may provide for the commission to be calculated using a second formula (which is a function of a second transaction attribute value, and which does not use the first attribute value), when the first transaction attribute value is not available in the analytics report 323 and the second transaction attribute value is available in the analytics report 323.

In some implementations, any of the attribution rules 315 may identify a publisher that is entitled to a commission on a transaction resulting from the presentation of an advertisement by the publisher. Additionally or alternatively, in some implementations, the attribution rule 315 may specify under what circumstances the publisher is entitled to a commission. For example, the attribution rule may specify that the publisher is entitled to a commission when the publisher has generated the last click (or other selection) leading to the completion of a transaction. As another example, the attribution rule may specify that the publisher is entitled to a commission when the publisher has generated any of the last 5 (or another number) of clicks (or other selections) leading to the completion of the transaction. Additionally or alternatively, the attribution rule may specify the amount of the commission. For instance, the attribution rule may specify that the publisher is entitled to a full commission. As another example, the attribution rule may specify that the publisher is entitled to a split commission or no commission at all. According to the present disclosure, the term “split commission” may be used to describe instances in which a publisher is entitled to only a portion of the commission that is available for a transaction, while one or more other publishers are entitled to receive the remainder of the commission.

Examples of attribution rules for a given advertiser may include:

-   -   (i) award the publisher the full commission when an ad presented         by the publisher has generated the last click (or another type         of selection) in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (ii) award the publisher a split commission when an ad presented         by the publisher has generated the last click (or another type         of selection) in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (iii) award the publisher the full commission when an ad         presented by the publisher has generated the first click (or         another type of selection) in a stream of clicks (or other         selections) leading to the completion of a transaction;     -   (iv) award the publisher the full commission when an ad         presented by the publisher has generated a click (or another         type of selection) anywhere in a stream of clicks (or other         selections) leading to the completion of a transaction;     -   (v) award the publisher a split commission when an ad presented         by the publisher has generated a click (or another type of         selection) anywhere in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (vi) award the publisher full commission when an ad presented by         the publisher has generated a click leading to the completion of         a transaction; and     -   (vii) award the publisher a split commission when an ad         presented by the publisher has generated a click (or another         type of selection) leading to the completion of a transaction.

The rules 316 for detecting whether a first record in an attribution report matches a second record in an analytics report are directed to the same transaction may include one or more of the following rules:

-   -   (i) the first record and the second record are considered         directed to the same transaction only when they both include the         same transaction ID;     -   (ii) the first record and the second record are considered         directed to the same transaction only when they include matching         transaction IDs;     -   (iii) the first record and the second record are considered         directed to the same transaction only when they both include the         same timestamp;     -   (iv) the first record and the second record are considered         directed to the same transaction only when they include matching         timestamps;     -   (v) the first record and the second record are considered         directed to the same transaction only when they both include the         same timestamp;     -   (vi) the first record and the second record are considered         directed to the same transaction only when they include matching         timestamps;     -   (vi) the first record and the second record are considered         directed to the same transaction only when they both include the         same attribute (e.g., timestamp, transaction ID, seller ID,         store ID, transaction type ID, etc.); and     -   (vii) the first record and the second record are considered         directed to the same transaction only when the first record         includes a first attribute that matches a second attribute in         the second record.

The rules 317 may include one or more rules specifying when a given record 402 in the attribution report 321 (shown in FIG. 4 ) matches one or more corresponding records 502 in the analytics report 323 (shown in FIG. 5 ) that are directed to the same transaction as the given record 402. According to the present example, when the value of an attribute of the transaction that is identified by the given record 402 does not match the value for the same attribute of the same transaction that is provided (or otherwise indicated) by the corresponding records 502, the given record 402 is said to contain an error. By way of example, any of the rules 317 may provide one or more of the following:

-   -   (i) the given record 402 is considered to contain an error when         the given record 402 and the corresponding records 502 identify         different commission amounts;     -   (ii) the given record 402 is considered to contain an error when         the given record 402 and the corresponding records 502 identify         different publishers as the recipients of a commission;     -   (iii) the given record 402 is considered to contain an error         when the corresponding records 502 indicate that the transaction         represented by the given record 402 is attributable to an         advertising platform other than the advertising platform which         generated the attribution report 321;     -   (iv) the first transaction record is invalid when the first         transaction record and the second transaction record identify         different transaction amounts; and     -   (v) the given record 402 is considered to contain an error when         the given record 402 and the corresponding records 502 include         differing timestamps.

As used throughout the disclosure the term “rule” may include any suitable type of representation of logic for verifying whether a condition is true. In this regard, any of the rules 316-318 may be represented a number, a string, an alphanumerical string, a regular expression, a conditional expression, and/or one or more processor-executable instructions, which when executed by at least one processor cause the at least one processor. According to aspects of the disclosure, two attribute values may be considered to match notwithstanding any differences in formatting. In instances in which two differently-formatted attribute values are compared one another, one of the attribute values may be converted to the formatting of the other before the attribute values are compared to determine whether they match. Additionally or alternatively, in some implementations, two attribute values may match when they are the same. Additionally or alternatively, in some implementations, two attribute values may match when they are within a predetermined distance from one another. For instance, two transaction amounts may match one another if they differ by no more than 10% of the value of the larger transaction amount. As another example, two timestamps may match one another if they are within two hours from one another. As yet another example, two publisher IDs may match one another if they have similar spelling (e.g., dot v. d0t).

The attribution report 321, as noted above, may be generated by the advertising platform 108. The attribution report 321 may include any suitable type of invoice, statement, bill, or other data that is issued by the advertising platform 108, and which identifies one or more transactions (and/or other events of interest) that have occurred as a result of an advertisement (or a plurality of different ads) being presented on one or more publishing platforms 102. As illustrated in FIG. 4 , the attribution report 321 may include a plurality of records 402 that correspond to different respective transactions. Each of the transactions may be associated with the presentation of at least one advertisement on one of the publishing platforms 102 on behalf of the advertiser associated with the advertiser profile 307 (i.e., the advertiser identified by the advertiser ID 309). The advertisement may be placed on the publishing platforms 102 by the advertising platform 108. The attribution report 321 may thus be generated by the advertising platform 108 for the purpose of billing the advertiser for the advertisement presentation(s).

As illustrated, each record 402 may include the values for one or more attributes of the record's 402 respective transaction. More particularly, each record 402 may include: an advertisement ID 404 identifying the advertisement which the record 402 is associated with; a transaction ID 406 identifying the transaction which has been completed as a result of the advertisement being presented (e.g., displayed) to a viewer; a timestamp 408 identifying the time when the transaction was completed; a transaction type ID 410 identifying the type of the transaction; a publisher ID 412 identifying the publisher and/or publishing platform on which the advertisement was presented; a publisher medium ID 414 identifying the website (or another electronic medium) where the advertisement was presented; a transaction amount 416 identifying an amount of money paid for the transaction to be completed; a publisher commission 418 that is owed to the publisher for the completion of the transaction; and a fee 420 that is owed to the advertising platform 108.

The analytics report 323 may be generated by the analytics platform 110. In some implementations, the analytics report 323 may include data that is the same or similar to the data in the attribution report 321. Additionally or alternatively, in some implementations, the analytics report 323 may include data that is otherwise usable in verifying whether commission amounts and fees listed in the analytics report 323 are correct. Additionally or alternatively, in some implementations, the analytics report 323 may include data that is otherwise usable in verifying whether other attribute values listed in the analytics report 323 are correct.

Although in the present example, the analytics report 323 is retrieved by the AVP 112 from the analytics platform 110, in some implementations the analytics report may be generated by the AVP 112. More particularly, in some implementations, the AVP 112 may obtain two or more different analytics reports and stitch the reports together to produce the analytics report 323. The AVP 112 may stitch (or otherwise combine) the entire reports (or portions thereof) together to produce the analytics report 323. For example, in some implementations, the AVP 112 may generate the analytics report 323 by appending (or otherwise combining) at least a first portion of a first analytics report to at least a second portion of a second analytics report. In the present example, the first analytics report and the second analytics report are generated by different analytics platforms. However, alternative implementations are possible in which the first analytics report and the second report are generated by the same analytics platform.

The first portion of the first analytics report may be selected for inclusion in the analytics report 323 based on containing information about a transaction that is attributable to the presentation (or selection) of one or more advertisements associated with the advertiser associated with the profile 307. Specifically, the first portion of the first analytics report may be selected for inclusion in the analytics report 323 based on containing one or more first attribute values that are needed to apply one or more of the attribution rules 315.

The second portion of the second analytics report may be selected for inclusion in the analytics report 323 based on containing information about a transaction that is attributable to the presentation (or selection) of one or more advertisements associated with the advertiser associated with the profile 307. Specifically, the second portion of the second analytics report may be selected for inclusion in the analytics report 323 based on including one or more second attribute values that are needed to apply one or more of the attribution rules 315 in order to calculate a commission, an advertising platform fee, and/or another value for the transaction. The one or more second attribute values may be attribute values that are not present in the first analytics report.

Using the analytics report 323 may be advantageous because, in some instances, the advertising platform 108 may have relied on incomplete data when calculating the commissions and fees in the attribution report 321. In such instances, the analytics report 323 may be used to correct errors in the attribution report. One such error may occur when the advertising platform 108 is not aware of all advertisement clicks (or other selections) that form a stream leading to a transaction being completed because some of the clicks (or other selections) are generated by advertisements placed by other advertising platforms. In such instances, because the analytics report 323 may be more comprehensive than the data relied upon by the advertising platform 108, which is used as a basis for generating the adverting platform report 321. As a result, the analytics report 323 may reveal the entire stream of clicks (or other selections) that has lead to the transaction being completed, thereby exposing any errors in the commission amounts calculated by the advertising platform 108 resulting from the entire stream of clicks (or other selections) not being considered by the advertising platform 108.

Furthermore, using the analytics report 323 may be advantageous in situations in which the advertising platform 108 lacks the technical capability to collect the data necessary for the proper application of attribution rules agreed upon by the advertiser. For instance, an attribution rule may provide that a publisher is entitled to a commission when a particular shopper has selected an advertisement and/or completed a transaction. However, the advertising platform 108 may lack the capability to distinguish between different shoppers that use the same device and as a result it may incorrectly attribute a commission to the publisher. In such instances, because the analytics report 323 may be more comprehensive than the data relied upon by the advertising platform 108, the analytics report 323 may be able to distinguish between different shoppers on the same device, thereby enabling the AVP 112 to calculate correct commission amount(s).

According to the present disclosure, the analytics report 323 may identify one or more transactions (and/or events of interest) that have occurred as a result of an advertisement (or a plurality of different ads) being presented on one or more publishing platforms 102. At least some of those transactions may be the same as the transactions identified in the attribution report 321. As illustrated in FIG. 5 , the analytics report may include a plurality of records 502 that correspond to different respective transactions. Each of the transactions may be associated with the presentation of at least one advertisement on one of the publishing platforms 102 on behalf of the advertiser associated with the advertiser profile 307. The advertisements may be placed on the publishing platforms 102 by the advertising platform 108 or another advertising platform. As noted above, the analytics report 323 may be used by the AVP 112 for the purpose of independently tracking the performance of one or more advertisements that are placed on different publishing platforms 102 by the advertising platform 108 and/or other advertising platforms.

As illustrated in FIG. 5 , each record 502 may include the values for one or more attributes of the record's 502 respective transaction. More particularly, each record 502 may include: an advertisement ID 504 identifying the advertisement which the record 502 is associated with; a transaction ID 506 identifying the transaction associated with the record, and which has been completed as a result of the advertisement being displayed; a timestamp 508 identifying the time when the transaction was completed; an advertising platform ID 510 identifying the advertising platform which has placed the advertisement on a given publishing platform; a transaction amount 512 identifying an amount of money paid for the transaction to be completed; and a medium ID 514 identifying the medium on which the advertisement was presented. Furthermore, alternative implementations are possible in which any record 402 includes other attribute values, not shown in FIG. 4 , such as publisher ID, publisher commission, advertising platform fee, publisher name, etc.

The corrected attribution report 325 may be generated by the processor 301 of the AVP 112 based on the attribution report 321 and the analytics report 323. As illustrated in FIG. 6 , the corrected attribution report 325 may include a plurality of records 602. Each record 602 may correspond to a different transaction that is identified in the attribution report 321. However, no record 602 may correspond to a transaction whose respective record 402 contains errors. In other words, the corrected attribution report 321 does not include records for transactions for which the attribution report 321 provides incorrect information. The advertising report 321 may be considered to provide incorrect information of a transaction when the record 402 corresponding to the transaction contains at least one incorrect attribute value.

In the present example, the corrected attribution report 325 does not include a record corresponding to the transaction with order ID “Order737,” because the record 402 c, which corresponds to this transaction, is identified as invalid by the processor 301 based on the analytics report 323. The reason for the record being identified as invalid is that the record 502 b, which corresponds to the same transaction, does not identify the advertising platform 108 as the source of the advertisement associated with transaction “Order737”; contrary to what is implied by the attribution report 321, the analytics report 323 identifies another advertising platform as the source of the record's associated advertisement. According to the present example, an advertising platform is considered the source of an advertisement if that advertising platform is the one that placed the advertisement on a publisher's platform.

As illustrated, each record 602 may include the values for one or more attributes of the record's 602 respective transaction. More particularly, each record 602 may include: an advertisement ID 604 identifying the advertisement which the record 602 is associated with; a transaction ID 606 identifying the transaction which has been completed as a result of the advertisement being presented; a timestamp 608 identifying the time when the transaction was completed; a transaction amount 610 identifying an amount of money paid to the advertiser (or an entity associated with the advertiser) for the transaction to be completed; a publisher ID 612 identifying the publisher on whose platform the advertiser was presented; a publisher medium ID 614; and a transaction type ID 616 identifying the type of the transaction.

In the present example, the record 602 a corresponds to the same transaction as the record 402 a, the record 602 b corresponds to the same transaction as the record 402 b, and the record 602 c corresponds to the same transaction as the record 402 d. In the present example, each record 602 includes fewer attributes values than its corresponding record 402. However, alternative implementations are possible, in which each record 602 includes the same or larger number of attribute values. According to aspects of the disclosure, a transaction record 602 may be considered to correspond to a transaction record 402 if and only if that transaction record 402 contains information regarding the same transaction as the transaction record 602.

Furthermore, in the present example, each record 602 includes attribute values that are identical to the attribute values found the record's 602 corresponding record 402. However, alternative implementations are possible in which any record 602 includes an attribute value that is different from the value for the same attribute that is found in the record's 602 corresponding record 402. For instance, in some implementations, the processor 301 may use one or more of the attribution rules 315 to determine that the record 402 a contains an incorrect transaction amount, in which case it may insert a corrected transaction amount in the record 602 a. As another example, the processor 301 may use one or more of the attribution rules 315 to detect that the commission identified in the record 402 d should be attributed to another publisher, in such instances, the processor 301 may insert a different publisher ID and/or publisher website ID in the record 602 c. Thus, in some implementations, the corrected attribution report may omit records for transactions that are attributable to advertising platforms other than the source of the attribution report 321 (e.g., advertising platform 108), while including corrected attribute values for transactions that are attributable to the source advertising platform (e.g., advertising platform 108).

Although in the present example, each of the reports 321-325 is depicted as a table, it will be understood that the disclosure is not limited to any specific way of representing and/or encoding the information found in the reports 321. In this regard, in some implementations, any of the reports 321 may be represented as a single data structure or multiple data structures. Additionally or alternatively, in some implementations, any of the reports 321-325 may be represented using a single file or by using multiple files. Although in the present example, each of the reports 321-325 includes multiple attribute values, alternative implementations are possible in which any of the reports includes only one attribute value for a given transaction (e.g., transaction ID). Furthermore, it will be understood that the any of the reports 321-325 may include any suitable type of data related to the presentation of advertisements, including, but not limited to, data that is normally collected by various analytics platforms and/or electronic marketers, such as number of clicks, number of impressions, etc.

The frontend 328 may include a plurality of processor-executable instructions, which when executed by the processor 301 cause the processor 301 to present to the advertiser client device 106 a web-based portal for accessing the functionality of the AVP. The web-based portal may include forms 327 and 329 which together form at least a part of the user interface of the AVP 112. To access the functionality of the AVP 112, the advertiser client device 106 may establish a connection with the AVP 112. Afterwards, the AVP 112 may present the user interface of the AVP 112 to the advertiser client device 106 by causing the advertiser client device 106 to display any of the forms 327 and 329. For example, the AVP 112 may transmit to the advertiser client device 106 HTML code, which when rendered on the advertiser client device 106 causes the advertiser client device 106 to display one or more of the forms 327 and 329. As another example, the AVP 112 may transmit to the advertiser client device an identifier (e.g., a number, string, or alphanumerical string) which when executed by the advertiser client device 106 causes the advertiser client device 106 to retrieve an instance of any of the forms 327 and 329 that is stored locally and render that form on the display of the device. Next, when any of the forms 327 and 329 is rendered on the advertiser client device 106, the user of the advertiser client device may fill the forms, after which the information that is entered into forms may be transmitted by the advertiser client device 106 to the AVP 112. Afterwards, the processor 301 may generate the advertiser profile 307 based on the information and store the advertiser profile in the memory 305.

FIG. 7 shows the form 327 in further detail. As illustrated, the form 327 may include user interface (UI) components 702-726. The UI component 702 may include a text input field (or another type of input component) for inputting the advertiser ID 309. The UI component 704 may include a drop-down menu, a text input field, and/or any suitable type of user interface component that can be used to specify one or more error types which the processor 301 should check for when processing the attribution report 321 to detect errors. In some implementations, the error types may include the following:

-   -   (i) Error Type I—occurs when a transaction listed in the         attribution report 321 is incorrectly attributed to the         advertising platform issuing the report (i.e., the advertising         platform 108);     -   (ii) Error Type II— occurs when a transaction amount listed in         any of the records 402 of the attribution report 321 is         incorrect; and     -   (iii) Error Type III— occurs when a transaction listed in the         attribution report 321 is not attributed to the correct         publisher.

The UI component 706 may include a drop-down menu or another type of input component for selecting an analytics platform. In the present example, the UI component 706 is used to select the analytics platform 110. The UI components 708 and 710 can be used to specify the credentials for accessing the services provided by the analytics platform 110. The UI components 708 and 710 may include text input fields, and the credentials specified in them can be used by the AVP 112 to receive the analytics report 323 from the analytics platform 110.

The UI component 712 may include a drop-down (or another type of input component) for selecting an advertising platform. In the present example, the UI component 712 is used to select the advertising platform 108. The UI components 714 and 716 may can be used to specify the credentials for accessing the selected advertising platform. The UI components 714 and 716 may include text input fields, and the credentials specified in them can be used by the AVP 112 to receive the attribution report 321 from the advertising platform 108.

The UI component 718 and 720 may can used to specify the starting date and the ending date of a time period during which a validation services are to be provided by the AVP 112. The UI component 722 may include a button and/or another type of input component, which when selected causes the advertiser client device 106 to transmit the information entered into the form to the AVP 112. As noted above, upon receiving the information, the AVP 112 may create the advertiser profile 307 based on the information and store the advertiser profile 307 in the memory 305. The UI component 724 may include a button and/or another type of input component, which when selected causes the advertiser client device 106 to discard the information entered in the form 327.

The UI component 726 may include a button or another type of input component which when selected causes the advertiser client device 106 to display the form 329, which is used for specifying one or more attribution rules. As illustrated in FIG. 8 , the form may include UI components 802-810. The UI component 802 may include a text input field (or another type of input component) for specifying the ID of a publisher. The UI component 804 may include a drop-down menu which permits the user to select an event which that results in the publisher being awarded a commission on a transaction that is completed as a result of an advertisement being presented on the publisher's platform. As illustrated, the event may be one of (i) a first click in a stream of clicks that results in a transaction being completed, (ii) a last click in the stream of clicks that results in the transaction being completed, and (iii) a click anywhere in the stream of clicks.

The UI component 806 may include a drop-down menu (or another type of input component) for specifying to commission which the publisher is set to receive as a result of generating a click that results in a transaction being completed. In the present example, the UI component 804 permits the user to select one of “full credit,” “split credit,” and “no commission.”

The UI component 808 may include a button (or another type of input component), which when selected causes the advertiser client device 106 to transmit the information entered into the form 329 to the AVP 112. Upon receiving the information, the AVP 112 may generate a representation of an attribution rule 315 and store it in the memory 305. The UI component 810 may include a button (or another type of input component), which when selected causes the advertiser client device 106 to discard the information entered into the form 329 and/or hide the form 329 from view.

FIG. 9 is a flowchart of an example of a process 900 performed by the AVP 112 according to aspects of the disclosure. At step 902, the AVP 112 presents to the client device 106 a user interface including a first input component for specifying a first credential and a second input component for specifying a second credential. In the present example, the AVP 112 causes the advertiser client device 106 display the forms 327 and/or 329, as discussed above.

At step 904, the advertiser profile 307 is created based on information that is input into the forms 327 and 329.

At step 906, the AVP 112 authenticates itself before the advertising platform 108 with the first credential and receives the attribution report 321 from the advertising platform 108. In some implementations, the attribution report 321 may be transmitted automatically to the AVP 112 without the AVP 112 having to transmit an explicit request. Additionally or alternatively, in some implementations, the attribution report 321 may be transmitted to the AVP 112 following the transmission of a request for it from the AVP 112 to the advertising platform 108.

At step 908, the AVP 112 authenticates itself before the analytics platform 110 with the second credential and receives the analytics report 323 from the analytics platform 110. In some implementations, the analytics report 323 may be transmitted automatically to the AVP 112 without the AVP 112 having to transmit an explicit request. Additionally or alternatively, in some implementations, the analytics report may be transmitted to the AVP 112 following the transmission of a request for it from the AVP 112 to the analytics platform 110.

At step 910, the AVP 112 identifies one or more errors in the in the attribution report 321 based on the analytics report 323.

At step 912, the AVP 112 performs an action in response to identifying the one or more errors. In some implementations, the action may include outputting an indication of at least one of the errors on an output device that is part of the AVP 112 (e.g., display screen, speaker, printer, etc.). Additionally or alternatively, in some implementations, the action may be one that prevents the advertiser associated with the advertiser profile 307 from being overcharged as a result of the errors. In some implementations, the action may include generating the corrected attribution report 325 and transmitting it to the advertising platform 108 for further processing. Additionally or alternatively, in some implementations, the action may include generating the corrected attribution report 325 and transmitting it to the advertising client device 106 (or another device associated with the advertiser) for further processing. Additionally or alternatively, in some implementations, the action may include transmitting an indication of at least one (or all) of the errors found in the attribution report 321 to the advertising platform 108. Additionally or alternatively, in some implementations, the action may include transmitting an indication of at least one (or all) of the errors found in the attribution report 321 to the advertising client device 106 (or another device associated with the advertiser). Additionally or alternatively, the action may include transmitting a request to a payment system to stop any pending payment associated with the attribution report 321). Additionally or alternatively, the action may include transmitting a request to a payment system to stop any pending payment for transactions whose respective records in the attribution report 321 contain errors.

FIG. 10 is a flowchart of an example of a process 1000 for identifying errors in the attribution report 321 based on the analytics report 323, as discussed with respect to step 910 of the process 900. At step 1002, the AVP 112 selects one of the transaction records 402 in the attribution report 321. At step 1004, the AVP 112 identifies one or more records 502 in the analytics report that are directed to the same transaction as the selected record 402. In some implementations, the AVP 112 may use any of the rules 316 to identify the records 502 that are associated with the same transaction. At step 1006, the AVP 112 identifies one or more errors in the selected record 402 based information that is contained in the identified one or more records 502. In some implementations, the AVP 112 may detect that the selected record 402 contains an error when the record's respective transaction is attributed by the identified one or more records 502 to an advertising platform other than the advertising platform which has generated the selected record 402 (i.e., the advertising platform 108). Additionally or alternatively, in some implementations, the AVP 112 may determine that the selected record 402 contains an error when the information in the identified one or more records 502 indicate that one of the attribute values in the selected record 402 is incorrect. At step 1008, the AVP 112 determines whether there are any other records 402 in the attribution report 321 that remain to be processed. If there are, the process returns to step 1002 and another record is selected. If there are none, the process proceeds to step 912.

FIG. 11 is a flowchart of an example of a process 1100 for detecting that an attribute value in the selected record 402 is incorrect, as discussed above with respect to step 1006 of the process 1000.

At step 1102, the AVP 112 selects an attribute of the transaction associated with the selected record 402. The attribute may include any attribute of the transaction whose value is identified in the selected record 402. The attribute may be transaction amount, publisher commission, publisher ID, publisher website, etc. In some implementations, the attribute may be selected based on one or more error types that are specified by the advertiser. For example, when the advertiser has used the UI component 704 to select “Error Type II,” the AVP 112 may select “Transaction Amount” as the attribute of interest. As another example, when the user has used the UI component 704 to select “Error Type III,” the AVP 112 may select “Publisher ID” as the attribute of interest. In some implementations, the selection may have performed based on consulting a table (or another data structure) that is stored in the memory 305. The table may include a plurality of error type identifiers. In addition, for each error type identifier, the table may identify one or more attributes that end up having incorrect values when errors of this type occur. The table may or may not be part of the advertiser profile 307.

At step 1104, the AVP 112 identifies a first value for the attribute that is listed in the selected record 402.

At step 1106, the AVP 112 calculates a second value for the attribute based on one or more of the attribution rules 315 and information that is identified in the one or more records 502 that are identified at step 1004. As noted above, these records are associated with the same transaction as the selected record 402.

At step 1108, the first attribute value is compared to the second attribute value. If the first attribute value matches the second attribute value, the AVP 112 determines that the first attribute value is correct and the selected record 402 does not contain an error with respect to the attribute selected at step 1102. In this case, the process 1100 proceeds to step 1112. Otherwise, if the first attribute value does not match the second attribute value, the AVP 112 determines that the first attribute value is incorrect and the selected record 402 contains an error. In this case, the process proceeds to step 1110

At step 1110, the AVP 112 generates and stores in the memory 305 an indication of the error. In some implementations, the indication may include one or more of: an identifier of the record that contains the error (i.e., the selected record 402), an indication of the attribute whose value is incorrect, an indication of the correct value, at least some of the information obtained from the records 502 that is used in calculating the correct value, etc. In some implementations, the indication may be transmitted, at step 912, to the advertising platform 108 or another entity in order to prevent the advertiser from being overcharged as a result of the error.

At step 1112, the AVP 112 determines whether there are any remaining attributes of interest that remain to be processed. If there are, the process 1100 returns to step 1102. Otherwise, the process 1100 proceeds to step 1008.

In some implementations, the process 1100 may be used to recalculate the commission amount that is due to a particular publisher and determine whether the re-calculated amount matches the commission amount provided by the advertising platform 108. Additionally or alternatively, in some implementations, the process 1000 may be used to determine whether a publisher is correctly attributed a given transaction and/or entitled to a commission for the given transaction. If the attribution rules provide that the publisher identified in the selected record 402 is entitled to a commission only when that publisher has generated the last click (or another selection) in a stream of clicks (or other selections) leading to a transaction completed, and the one or more records 502, indicate that the publisher did not generate the last click in the stream, the AVP 112 may determine that this publisher is not owed commission for the transaction. Put simply, in the latter case, the one or more records 502 may be used to confirm the position of a click in a stream of clicks to determine whether the publisher that generated the click is owed a commission. As used throughout the disclosure, the term “stream” may refer to a sequence of consecutive clicks (or other selections) that are performed on different instances of the same advertisement that are presented to the same user at different times (e.g., displayed on the same device, displayed on the same device while a particular shopper is using it, etc.)

As noted about the processes 900, 1000 and 1100 may be performed by the AVP 112. Any of the steps in these processes may be executed by the processor 301 and/or another hardware component of the AVP 112. Although the AVP 112 is depicted in FIG. 3 as a monolithic device, it will be understood that the AVP 112 may include a single computing device (e.g., as illustrated in FIG. 3 ) or multiple computing devices. In the latter case, the processor 301 may include multiple processor which are operatively coupled to one another. Similarly, the memory 305 may include multiple storage devices that are situated at different locations.

In some implementations, the processes 900, 1000, and 1100 may be executed periodically by the AVP 112. Additionally alternatively, in some implementations, the processes 900, 1000, and 1100 may be executed asynchronously, in response to the AVP 112 detecting that it has received the attribution report 321 form the advertising platform 108 and/or the analytics report 323 from the analytics provider. In some implementations, the advertising platform 108 may automatically transmit to the AVP 112 any reports it generates for further validation. Additionally or alternatively, in some implementations, attribution reports that are generated by the advertising platform 108 may be forwarded to the AVP 112 by the advertiser client device 106 instead of being provided directly to the AVP 112 by the advertising platform 108.

FIG. 12 is a flowchart of an example of a process 1200, according to aspects of the disclosure. The process 1200 may be performed by any node in the system 100, such as the advertising platform 108, the analytics platform 110, the advertiser client device 106, and or any of the publishing platforms 102. In this regard, FIG. 12 illustrates that the concepts and processes discussed throughout the disclosure can be performed by any node at the system 100, and not only the AVP 112.

At step 1202, a first report identifying one or more transactions (or other events) is obtained. In some implementations, the first report may identify a respective transaction amount for each of the transactions. Additionally or alternatively, in some implementations, the first report may identify a respective commission for each of the transactions identified in it. Additionally or alternatively, in some implementations, the first report may identify a respective publisher that is to receive any of the commissions. Additionally or alternatively, in some implementations, the first report may identify a fee that is owed to a respective advertising platform that is affiliated with any of the publishers that are set to receive a commission. Additionally or alternatively, in some implementations, the first report may be the same or similar to the attribution report 321. The first report may be received from the advertising platform 108 or another source.

At step 1204, a second report identifying one or more transactions (or other events) is obtained. In some implementations, the second report may identify some or all of the transactions identified in the first report. Additionally or alternatively, in some implementations, the second report may identify transactions not listed in the first report. Additionally or alternatively, in some implementations, the second report may identify one or more attributes of each of the transactions listed in it. Additionally or alternatively, in some implementations, the first report may be the same or similar to the analytics report 323. The second report may be received from the analytics platform 110 or another source.

At step 1206, one or more errors are identified in the first report based on information found in the second report. In some implementations, step 1206 may be performed in the same or similar manner to steps 910 and/or 1006.

At step 1208, an action is taken in response to the one or more errors being identified. In some implementations, the action may include outputting an indication of at least one of the errors on an output device that is part of the device/system executing the process 1200 (e.g., display screen, speaker, printer, etc.). Additionally or alternatively, in some implementations, the action may be one that prevents an advertiser from being overcharged as a result of the errors in the first report.

In instances in which the process 1200 is performed by the AVP 112, step 1208 may be performed in the same or similar manner as step 912. In instances in which the process 1200 is performed by the advertising platform 108, the advertising platform 108 may generate a corrected version of the first report, which doesn't include the errors, and transmit the corrected version of the first report to the advertiser.

In instances in which the process 1200 is performed by the analytics platform 110, the analytics platform 110 may transmit an indication of at least some of the errors to the device/system from which the first report is received or which has generated the first report. Additionally or alternatively, in instances in which the process 1200 is performed by the analytics platform 110, the analytics platform 110 may transmit a corrected version of the first report to the device/system from which the first report is received or which has generated the first report. Additionally or alternatively, in instances in which the process 1200 is performed by the analytics platform 110, the analytics platform 110 may transmit an indication of at least some of the errors to a device associated with an advertiser for which the first report is intended (e.g., the advertiser client device 106). Additionally or alternatively, in instances in which the process 1200 is performed by the analytics platform 110, the analytics platform 110 may transmit a stop payment request to a payment system that is configured to pay one or more charges in the first report instructing the payment system to withhold payment on all transactions identified in the first report or withhold payment on only transactions whose respective records contain errors.

In instances in which the process 1200 is performed by the advertiser client device 106, the advertiser client device 106 may transmit an indication of at least some of the errors to the device/system from which the first report is received or which has generated the first report. Additionally or alternatively, in instances in which the process 1200 is performed by the advertiser client device 106, the advertiser client device 106 may transmit a corrected version of the first report to the device/system from which the first report is received or which has generated the first report. Additionally or alternatively, in instances in which the process 1200 is performed by the advertiser client device 106, the advertiser client device 106 may transmit a stop payment request to a payment system that is configured to pay one or more charges in the first report instructing the payment system to withhold payment on all transactions identified in the first report or withhold payment on only transactions whose respective records contain errors.

FIG. 13 is a diagram of an example a system 1300, according to aspects of the disclosure. The system 1300 may be nearly identical to the system 1300, except for including a plurality of different advertising platforms 1308, a plurality of different analytics platforms 1310, and an attribution verification platform (AVP) 1312. All nodes in the system 1300 are connected to one another via the communications network 114, as shown.

Any of the client devices 1306 may be the same or similar to the advertiser client device 106. Any of the client devices 1306 may be used by an advertiser to create an account with the AVP 1312 and sign up for services provided by the AVP 1312.

Any of the advertising platforms 1308 may be the same or similar to the advertising platform 108, which is discussed above with respect to FIG. 1 . For example, in some implementations, any of the advertising platforms may include one or more servers that are configured to act as an intermediary between the publishing platform and the advertiser. More particularly, the servers in each of the advertising platforms 1308 may be configured to perform at least some of the following tasks: (i) receive, over the communications network 114, an order for the placement of an advertisement from the advertiser client device; (ii) cause at least one of the publishing platforms 102 to display the advertisement; (iii) receive an attribution report that is generated by the AVP 1312, (iv) receive a payment for one or more transactions identified in the attribution report, and (v) disburse different portions of the payment to publishers to which the transactions identified in the advertising report are attributed.

Any of the analytics platforms 1310 may be the same or similar to the analytics platform 110, which is discussed above with respect to FIG. 1 . Additionally or alternatively, in some implementations, any of the analytics platforms 1310 may include one or more servers that are configured to collect and provide analytics related to the presentation of advertisements placed by the advertising platform 108 on one or more publishing platforms 102. Additionally or alternatively, in some implementations, any of the analytics platforms 1310 may be the same or similar to the GOOGLE ANALYTICS system that is currently fielded by GOOGLE, or the ADOBE ANALYTICS system fielded by ADOBE.

In the example of FIG. 13 , the advertising platforms 1308 are not tasked with generating attribution reports for various advertisers that work with them. Rather, this task is delegated to the AVP 1312. As noted above, the attribution reports include various charges that are required to be paid by publishers in the form of commissions and fees. Some of those charges may be directly payable to the advertising platforms 1308, which in some circumstances, may create an incentive for the advertising platforms 1308 to exaggerate the charges in order to maximize profit. Accordingly, outsourcing the calculation of those charges to the AVP 1312 may help ensure the accuracy of the charges that are paid by advertisers. Furthermore, the AVP 1312 may provide advertisers with a centralized platform that allows them to manage their dealings with a number of different advertising platforms from the same place, thereby increasing the advertisers' productivity. Furthermore, in some implementations, the advertising platforms 1308 may lack the technical capability to obtain all of the analytics data that is necessary for calculating various commissions and fees and/or the preparation of attribution reports. In such instances, the AVP 1312 may be better suited for collecting this data, as it may have the capability to interface with a larger number of different analytics platforms, than the advertising platforms 1308.

In some implementations, the AVP 1312 may include one or more servers that are configured to receive an analytics report provided by one of the analytics platforms 1310, receive one or more attribution rules from at least one of the advertiser client devices 1306, generate an attribution report based on the analytics report and the attribution rules, and transmit the attribution report report to one of the advertising platforms 1308. The external advertising report may identify commission amounts and/or other fees that are owed by the advertiser to the recipient advertising platform 1308 and publishing platforms 102 for the presentation of advertisements on behalf of the advertiser. Upon receiving the external attribution report and payment, the recipient advertising platform 1308 may disburse the fees and commissions identified in the report to different advertisers.

FIG. 14 is a diagram of an example of the AVP 1312, in accordance with one particular implementation. As illustrated, the AVP 1312 may have the same or similar hardware structure as the AVP 112. As noted above, unlike the AVP 112, the AVP 1312 may be configured to provide third-party attribution services to advertising platforms, publishers, and/or advertisers. To perform these services, the AVP 1312 may utilize advertiser profiles 1407 that are stored in the memory 305. Although in the present example, the advertiser profiles 1407 are stored on the AVP 1312, it will be understood that at least one of the advertiser profiles 1407 may be stored on any node in the system 1300, such as any of the advertiser client devices 1306, any of the publishing platforms 102, any of the analytics platforms 1310A, etc. In this regard, the functions performed by the AVP 1312 in the example of FIGS. 13-17 , in some implementations, may be performed by another node in the system 1300.

In the present example, the AVP 1312 includes two advertiser profiles 1407 stored in the memory 305—namely advertiser profile 1407A and 1407B. Each of the advertiser profiles may include information associated with a different advertiser. In some implementations, the advertiser profile 1407A may include information corresponding to an advertiser associated with the advertiser client device 1306A, while the advertiser profile 1407B may include information associated with the advertiser client device 1306B. In the present example, the advertiser profile 1407A may include an advertiser ID 1409A, an advertising platform data record 1411A, an analytics platform data record 1413A, and attribution rules 1415A. The advertiser profile 1407B may include an advertiser ID 1409B, an advertising platform data record 1411B, an analytics platform data record 1413B, and attribution rules 1415B.

Any of the advertiser IDs 1409 may be the same or similar to the advertiser ID 309. More particularly, each of the advertiser IDs 1409 may include at least one of a number, a string, or an alphanumerical string that is capable of identifying an advertiser that is using the services provided by the AVP 1312. In the present example, the advertiser ID 1409A may include information identifying an advertiser that is associated with the advertiser client device 1306A. Similarly, the advertiser ID 1409B may include information identifying an advertiser that is associated with the advertiser client device 1306B.

Any of the advertising platform data records 1411 may be the same or similar to the advertising platform data record 311. In some implementations, the record 1411A may include information corresponding to the advertising platform 1308A. As such, the record 1411A may include a URL and/or another type of address that can be used to establish a connection with the advertising platform 1308A and upload the attribution report 1421A onto the advertising platform 1308A over the connection. Furthermore, in some implementations, the advertising platform record 1411A may include one or more credentials that are needed to establish the connection. In some implementations, the credentials may include one or more of a username, a secure key, a password, and/or any other suitable type of credential that is needed by the AVP 1312 to authenticate itself before the advertising platform 1308A in order for it to be permitted to upload onto the advertising platform 1308A the attribution report 1421A.

In some implementations, the advertising record 1411B may include information corresponding to the advertising platform 1308B. As such, the advertising platform record 1411B may include a URL and/or another type of address that can be used to establish a connection with the advertising platform 1308B and upload the attribution report 1421B onto the advertising platform 1308B over the connection. Furthermore, in some implementations, the advertising platform record 1411B may include one or more credentials that are needed to establish the connection. In some implementations, the credentials may include one or more of a username, a secure key, a password, and/or any other suitable type of credential that is needed by the AVP 1312 to authenticate itself before the advertising platform 1308B in order for it to be permitted to upload on the advertising platform 1308B the attribution report 1421B.

Any of the analytics platform data records 1413 may be the same or similar to the advertising platform data record 311. In the present example, the analytics platform data record 1413A includes information associated with the advertising platform 1308A, and the advertising analytics platform data record 1413B includes information associated with the analytics platform 1310B.

In some implementations, the analytics platform data record 1413A may include one or more of an ID corresponding to the analytics platform 1310A and one or more credentials for retrieving an analytics report 1423A from the analytics platform 1310A. The analytics platform ID may include any suitable number, string, and/or alphanumerical identifier that is capable of identifying the analytics platform 1310A. In some implementations, the analytics platform ID may include a URL and/or another type of address that can be used by the AVP 1312 to connect to the analytics platform 1310A and retrieve the analytics report 1423A (which is generated by the analytics platform 1310A). The advertising platform credentials may include one or more of a username, a secure key, a password, and/or any other suitable type of credential that is needed by the AVP 1312 to authenticate itself before the analytics platform 1310A before it is permitted to retrieve the analytics report 1423A from the analytics platform 1310A.

In some implementations, the analytics platform data record 1413B may include one or more of an ID corresponding to the analytics platform 1310B and one or more credentials for retrieving an analytics report 1423B from the analytics platform 1310B. The analytics platform ID may include any suitable number, string, and/or alphanumerical identifier that is capable of identifying the analytics platform 1310B. In some implementations, the analytics provider ID may include a URL and/or another type of address that can be used by the AVP 1312 to connect to the analytics platform 1310B and retrieve the analytics report 1423B (which is generated by the analytics platform 1310B). The advertising platform credentials may include one or more of a username, a secure key, a password, and/or any other suitable type of credential that is needed by the AVP 1312 to authenticate itself before the analytics platform 1310B before it is permitted to retrieve the analytics report 1423B from the analytics platform.

Any of the attribution rules 1415 may be the same or similar to the attribution rules 315. In the present example, the attribution rules 1415A may include one or more attribution rules for attributing commissions that are due to be paid by the advertiser associated with the profile 1407A for transactions that have resulted from the presentation of advertisements, by the advertising platform 1308A, on any of the publishing platforms 102. Furthermore, in the present example, the attribution rules 1415B may include one or more rules for attributing commissions that are due to be paid by the advertiser associated with the profile 1407B for transactions that have resulted from the presentation of advertisements, by the advertising platform 1308B, on any of the publishing platforms 102. Additionally or alternatively, any of the attribution rules 1415A or 1415B may include logic for calculating any suitable metric of the performance of an advertisement.

In some implementations, any of the attribution rules 1415A may include logic for calculating a fee that is owed by the advertiser to the advertising platform 1308A. In some implementations, the logic may include a mathematical expression. Additionally or alternatively, in some implementations, the logic may include one or more processor-executable instructions (e.g., a script), which when executed by at least one processor causes the at least one processor to calculate the fee. In some implementations, the processor-executable instructions may include at least two different expressions (e.g., conditional expressions) for calculating the fee. For example, the first expression may provide for the fee to be calculated using a first formula (which is a function of a first transaction attribute value), when the first transaction attribute value is available in the analytics report 1423A. As another example, the second expression may provide for the fee to be calculated using a second formula (which is a function of a second transaction attribute value, and which does not use the first attribute value), when the first transaction attribute value is not available in the analytics report 1423A and the second transaction attribute value is available in the analytics report 1423A.

Additionally or alternatively, in some implementations, any of the attribution rules 1415A may include logic for calculating a commission that is owed by the advertiser to one or more publishing platforms. In some implementations, the logic may include a mathematical expression. Additionally or alternatively, in some implementations, the logic may include one or more processor-executable instructions (e.g., a script), which when executed by at least one processor causes the at least one processor to calculate the commission. In some implementations, the processor-executable instructions may include at least two different expressions (e.g., conditional expressions) for calculating the commission. For example, the first expression may provide for the commission to be calculated using a first formula (which is a function of a first transaction attribute value), when the first transaction attribute value is available in the analytics report 1423A. As another example, the second expression may provide for the commission to be calculated using a second formula (which is a function of a second transaction attribute value, and which does not use the first attribute value), when the first transaction attribute value is not available in the analytics report 1423A and the second transaction attribute value is available in the analytics report 1423A. Similar to the attribution rules 1415A, the attribution rules 1415B may also include logic for calculating at least one of fees and commissions associated with the presentation of advertisements. The logic in the attribution rules 1415B may include a mathematical expression and/or conditional expressions that are predicated on the availability of specific transaction attribute values in the analytics report 1423B.

In some implementations, the attribution rules 1415A may include at least one attribution rule that is not part of the attribution rules 1415B, or vice versa. Thus, in some instances, the attribution rules 1415A and 1415B may include attribution rule sets that are at least partially disjoint or otherwise different. In some implementations, any of the attribution rules 1415A and 1415B may include one or more of the following attribution rules:

-   -   (i) award the publisher the full commission when an ad presented         by the publisher has generated the last click (or another type         of selection) in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (ii) award the publisher a split commission when an ad presented         by the publisher has generated the last click (or another type         of selection) in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (iii) award the publisher the full commission when an ad         presented by the publisher has generated the first click (or         another type of selection) in a stream of clicks (or other         selections) leading to the completion of a transaction;     -   (iv) award the publisher a split commission when an ad presented         by the publisher has generated the first click (or another type         of selection) in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (v) award the publisher the full commission when an ad presented         by the publisher has generated a click (or another type of         selection) anywhere in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (vi) award the publisher a split commission when an ad presented         by the publisher has generated a click (or another type of         selection) anywhere in a stream of clicks (or other selections)         leading to the completion of a transaction;     -   (vii) award the publisher full commission when an ad presented         by the publisher has generated a click leading to the completion         of a transaction; and     -   (viii) award the publisher a split commission when an ad         presented by the publisher has generated a click (or another         type of selection) leading to the completion of a transaction.

Any of the attribution reports 1421 may be the same or similar to the attribution report 321. In some implementations, each of the attribution reports 1421 may include one or more transaction records. Each of the records may correspond to a different respective transaction. In some implementations, each of the records may include the values for one or more attributes of the record's respective transaction. More particularly, each record may include: an advertisement ID identifying the advertisement which the record is associated with; a transaction ID identifying the transaction which has been completed as a result of the advertisement being presented (e.g., displayed) to a viewer; a timestamp identifying the time when the transaction was completed; a transaction type ID identifying the type of the transaction; a publisher ID identifying the publisher and/or publishing platform on which the advertisement was presented; a publisher medium ID identifying the website (or another electronic medium) where the advertisement was presented; a transaction amount identifying an amount of money paid for the transaction to be completed; a publisher commission that is owed to the publisher for the completion of the transaction; and a fee that is owed to the attribution report's 1421 corresponding advertising platform.

In some implementations, the attribution report 1421A may be generated by the AVP 1312 for use by the advertising platform 1308A based on the analytics report 1423A and the attribution rules 1415A. In some implementations, the attribution report may include one or more records corresponding to different transactions whose completion is attributable to advertisements that were placed on one or more publishing platforms 102 by the advertising platform 1308A. In the present example, the attribution report 1421A is generated on behalf of the advertiser associated with the advertiser profile 1407A. However, alternative implementations are possible in which the attribution report 1421A is generated on behalf of the advertiser associated with the advertiser profile 1407B. Additionally or alternatively, in some implementations, the attribution report 1421A may be generated using the process 1600 which is discussed further below with respect to FIG. 16 .

In some implementations, the attribution report 1421B may be generated by the AVP 1312 for use by the advertising platform 1308B based on the analytics report 1423B and the attribution rules 1415A. In some implementations, the attribution report may include one or more records corresponding to different transactions whose completion is attributable to advertisements that were placed on one or more publishing platforms 102 by the advertising platform 1308B. In the present example, the attribution report 1421B is generated on behalf of the advertiser associated with the advertiser profile 1407A. However, alternative implementations are possible in which the attribution report 1421B is generated on behalf of the advertiser associated with the advertiser profile 1407B. Additionally or alternatively, in some implementations, the attribution report 1421B may be generated using the process 1600 which is discussed further below with respect to FIG. 16 .

In the present example, as illustrated in FIG. 15 , the attribution report 1421A is identical to the attribution report 321. However, alternative implementations are possible in which the attribution report may lack values for at least one of the attribute types illustrated in the example of FIG. 15 . Furthermore, alternative implementations are possible in which the attribution report 1421A includes the values for additional attributes that are not shown in the example of FIG. 15 . For example, any of the transaction records 402 in the attribution report may include a medium that is used to deliver an advertisement identified in the record and/or a shopper ID identifying the particular shopper that completed the record's 402 corresponding transaction. The present disclosure is not limited to any specific type of information being included in the attribution report 1421A. As noted above, in some implementations, the attribution report may include an indication of any suitable metric of the performance of the advertisement that can be used by advertiser to assess the value of the advertisement of the advertiser's business. As such, the attribution report 1421A may or may not include indications of chargers that are payable by an advertiser to one or more entities.

Any of the analytics reports 1423 may be the same or similar to the analytics report 323. The analytics report 1423A may identify one or more transactions associated with the advertiser represented by the advertiser profile 1407A. In some implementations, those transactions may include purchases of goods or services made from the advertiser or an entity associated with the advertiser. For each of the transaction, the analytics report 1423A may include the values of one or more attributes associated with the transaction that are usable in calculating the commissions and fees associated with the transaction, such as the publisher commission 418 and the advertising platform fee 420. Those attribute values may identify the total value of each transaction, the advertising platform to which the transaction is attributable, one or more publishing platforms to which the transaction is attributable, and/or any other suitable type of information.

Although in the present example, the analytics report 1423A is retrieved by the AVP 1312 from the analytics platform 1310A, in some implementations the analytics report may be generated by the AVP 1312. More particularly, in some implementations, the AVP 1312 may obtain two or more different analytics reports and stitch the reports (or portions thereof) together to produce the analytics report 1423A. For example, in some implementations, the AVP 1312 may generate the analytics report 1423A by appending (or otherwise combining) at least a first portion of a first analytics report to at least a second portion of a second analytics report. In the present example, the first analytics report and the second analytics report are generated by different analytics platforms. However, alternative implementations are possible in which the first analytics report and the second report are generated by the same analytics platform.

The first portion of the first analytics report may be selected for inclusion in the analytics report 1423A based on containing information about a transaction that is attributable to the presentation (or selection) of one or more advertisements associated with the advertiser associated with the profile 1407A. Specifically, the first portion of the first analytics report may be selected for inclusion in the analytics report 1423A based on containing one or more first attribute values that are needed to apply one or more of the attribution rules 1415A in order to calculate a commission, an advertising platform fee, and/or another value for the transaction.

The second portion of the second analytics report may be selected for inclusion in the analytics report 1423A based on containing information about a transaction that is attributable to the presentation (or selection) of one or more advertisements associated with the advertiser associated with the profile 1407A. Specifically, the second portion of the second analytics report may be selected for inclusion in the analytics report 1423A based on containing one or more second attribute values that are needed to apply one or more of the attribution rules 1415A in order to calculate a commission, an advertising platform fee, and/or another value for the transaction. The one or more second attribute values may be attribute values that are not present in the first analytics report.

The analytics report 1423B may include one or more transactions associated with the advertiser represented by the advertiser profile 1407B. In some implementations, those transactions may include purchases of goods or services made from the advertiser or an entity associated with the advertiser. For each of the transaction, the analytics report 1423B may include the values of one or more attributes associated with the transaction that are usable in calculating the commissions and fees, such as the publisher commission 418 and the advertising platform fee 420. Those attribute values may identify the total value of each transaction, the advertising platform to which the transaction is attributable, one or more publishing platforms to which the transaction is attributable, and/or any other suitable type of information. Although in the present example, the analytics report 1423B is retrieved by the AVP 1312 from the analytics platform 1310B, alternative implementations are possible in which the analytics report 1423B is generated by the AVP 1312 by combining multiple reports (or portions thereof) in the manner discussed above with respect to the analytics report 1423A.

The frontend 1428 may be the same or similar to the frontend 328. As such, the front end may include one or more forms for specifying, modifying, changing, adding, or deleting any suitable type of information that is part of the advertiser profiles 1407 and/or any suitable type of information that is needed for the generation of attribution report. Furthermore, the frontend 1428 may include 1428 may include a management screen 1431 which may be used by an advertiser to manage a number of different reports that have been generated on behalf of the advertiser and/or submitted to advertising platforms that work with the advertiser. The management screen 1431 is discussed further below with respect to FIG. 17 . As used throughout the disclosure, the term “form” may refer to a user interface screen or a portion of a user interface screen that can be presented to the user for the purposes of presenting information to the user and/or receiving input from the user.

FIG. 16 is a flowchart of an example of a process 1600 for generating attribution reports, according to aspects of the disclosure. Although in the present example, the process 1600 is executed by the AVP 1312, it will be understood that the process 1600 may be executed on any node in the system 1300, such as any of the advertiser client devices 1306, any of the publishing platforms 102, any of the analytics platforms 1310A, etc.

At step 1602, the AVP 1312 presents to the client device 106 a user interface including a first input component for specifying a first credential and a second input component for specifying a second credential. In the present example, the AVP 112 causes the advertiser client device 106 display the forms 327 and/or 329, as discussed above.

At step 1604, the advertiser profile 307 is created based on information that is input into the forms 327 and 329.

At step 1606, the AVP 1312 authenticates itself before the analytics platform 1310A with the first credential and receives the analytics report 1423A from the analytics platform 1310A. In some implementations, the analytics report 1423A may be transmitted automatically to the AVP 1312 without the AVP 1312 having to transmit an explicit request. Additionally or alternatively, in some implementations, the analytics report 1423A may be transmitted to the AVP 1312 following the transmission of a request for it from the AVP 1312 to the advertising platform 1308A.

At step 1608, the AVP 1312 validates the analytics report 1423A. In some implementations, validating the analytics report 1423A may include detecting whether the analytics report provides sufficient information for applying any (or all) of the attribution rules 1415A. In some implementations, for any of the attribution rules 1415A, the AVP 1312 may perform the following steps: (i) identify one or more attribute values that are needed for applying the attribution rule, and (ii) detect whether those attribute values are present in the analytics report 1423A. If the attribute values needed for the application of all attribution rules are present, the process may proceed to step 1610. If the attribute values needed for the application of at least one attribution rule the process may proceed to step 1618.

For example, when an attribution rule may provide that the commission for a transaction resulting from the presentation of an advertisement has to be split between the publishers which generated the three most recent selections (e.g., clicks) of the advertisement prior to the transaction being completed. In such instances, when validating the analytics report 1423A, the AVP 1312 may detect whether the analytics report 1423A identifies the three most recent selections of the advertisement prior to the transaction being completed. If all the three most recent selections are not identified by the analytics report 1423A, the AVP 1312 may detect that the analytics data 1423 does not contain the information necessary for applying the attribution rule. By contrast, if the three most recent selections are identified, the AVP 1312 may detect that the analytics report 1423A contains all information that is necessary for the application of the attribution rule.

At step 1610, the AVP 1312 generates the attribution report 1421A based on one or more of the attribution rules 1415 and the analytics report 1423A.

At step 1612, the AVP 1312 transmits the attribution report 1421A to the advertising platform 1308A. In some implementations, the attribution report 1421A may be transmitted along with a payment of all commissions and fees identified in the attribution report 1421A. In some implementation, upon receiving the attribution report 1421A, the advertising platform 1308A may disburse a respective payment to each of the commission recipients identified in the attribution report 1421A, while retaining for itself all advertising platform fees that are identified in the report.

At step 1614, the AVP 1312 presents the management screen 1431 on the advertiser terminal 1306A. The management screen 1431 may identify one or more attribution reports that have been generated for the advertiser associated with the advertiser profile 1407A. In addition, in some implementations, the management screen 1431 may include one or more input components for performing one or more operation on selected ones of the attribution reports listed in the management screen 1431.

In some implementations, presenting the management screen 1431 may include transmitting HTML code (or another type of code) representing the management screen to the advertiser client device 1306A, which when executed by the advertiser client device 1306A causes the advertiser client device 1306A to display the management screen 1431. Additionally or alternatively, in some implementations, presenting the management screen 1431 may include transmitting to the advertiser client device 1306A one or more attribute values that are part of the management screen, such as attribution report IDs, attribution report recipient IDs, attribution report status indicators, etc.

At step 1616, the AVP 1312 may perform one or more operations on analytics reports that have been selected on the management screen 1431 by the advertiser. The performance of these operations is discussed further below with respect to FIG. 17 .

At step 1618, the AVP 1312 takes corrective action in response to detecting that the analytics report 1423A does not contain sufficient information for applying at least some of the attribution rules 1415A. In some implementations, the action may include transmitting to the advertiser client device 1306A an identification of at least one rule that cannot be applied because the analytics report 1423A includes insufficient information, along with a notification that the rule cannot be applied using the information available in the analytics report 1423A. Additionally or alternatively, in some implementations, the notification may also identify one or more attribute values (or attribute types) that are missing from the analytics report 1423A, which are necessary for the application of the attribution rule. Upon receiving the notification, the advertiser may access the frontend 1428 of the AVP 1312 to delete the rule and recalculate the attribution report 1421A.

Additionally or alternatively, in some implementations, the action may include transmitting to the advertising platform 1308A an indication of the rule along with a notification that the rule can be applied using the information available in the analytics report 1423A. Additionally or alternatively, in some implementations, the action may include retrieving supplemental analytics data from another source (e.g., the advertising platform 1308B) and applying the rule using the supplemental analytics data.

Although in the present example, the process 1600 includes the step 1608 in which the analytics report 1423A is validated, alternative implementations are possible in which this step is omitted. For example, in instances in which the analytics report 1423A is generated by stitching together multiple reports (or portions thereof), the step 1608 may be omitted from the process 1600.

FIG. 17 illustrates the management screen 1431 in further detail, in accordance with one particular implementation. As illustrated, the management screen 1431 may include a plurality of attribution report records 1710. Each attribution report record 1710 may correspond to a different attribution report that is generated by the AVP 1312. In some implementations, each record 1710 may include a record ID 1702 for the record's respective attribution report, a recipient ID 1704 identifying the recipient of the respective attribution report, a timestamp 1706 identifying the day (or time) when the respective attribution report was sent, if at all, and a status ID 1708 indicating whether the report has been sent to the respective recipient. Although not shown, for each attribution report, the management screen 1431 may identify the total of commissions that are listed in the attribution report. Additionally or alternatively, in some implementations, for each attribution report, the management screen 1431 may identify the total of all advertising platform fees that are listed in the attribution report. Additionally or alternatively, in some implementations, for each attribution report, the management screen 1431 may identify the total of all commissions and advertising platform fees that are listed in the attribution report.

In some implementations, the management screen 1431 may include a plurality of checkboxes 1712 for selecting different records 1710 (and/or the attribution reports corresponding to the records). In some implementations, each of the checkboxes 1712 may correspond to a different respective record 1710 (or the record's respective attribution report). For example, the checkbox 1712A may correspond to the record 1710A (or the attribution report 1421A). When the checkbox 1712A is checked, the record 1710A (or the attribution report 1421A) may be considered selected. When the checkbox 1712A is not checked, the record 1710A (or the attribution report 1421A) may be considered not selected. As another example, the checkbox 1712B may correspond to the record 1710B (or the attribution report 1421B). When the checkbox 1712B is checked, the record 1710B (or the attribution report 1421B) may be considered selected. When the checkbox 1712B is not checked, the record 1710B (or the attribution report 1421B) may be considered not selected.

In some implementations, the management screen 1431, may include a plurality of input components 1714. Each of the input components 1714 may be a button, a text link, and/or any other suitable type of input component. Each of the input component 1714 may be associated with a different function that can be performed on one or more selected attribution reports.

In some implementations, the input component 1714A may be associated with a “retransmit function.” When the input component 1714A is selected (e.g., pressed), the device displaying the management screen 1431 (e.g., the advertiser client device 1306A) may transmit to the AVP 1312 an indication of one or more attribution reports that are selected along with an instruction to re-transmit the reports. In response to receiving the instruction, the AVP 1312 may retransmit the identified reports to their respective recipients.

In some implementations, the input component 1714B may be associated with a “stop-payment function.” When the input component 1714B is selected (e.g., pressed), the device displaying the management screen 1431 may transmit to the AVP 1312 an indication of one or more attribution reports that are selected along with an instruction to stop any pending payments that are associated with the reports. In response to receiving the instruction, the AVP 1312 may transmit a different stop-payment instruction for each of the selected attribution reports. The stop payment instruction may be transmitted to the recipients of the selected reports (e.g., the advertising platform 1308A) or to a financial institution that is tasked with disbursing the payments.

In some implementations, the input component 1714C may be associated with a “recalculate function.” When the input component 1714C is selected (e.g., pressed), the device displaying the management screen 1431 may transmit to the AVP 1312 an indication of one or more attribution reports that are selected along with an instruction to generate a new version of the report. In response to receiving the instruction, the AVP 1312 may generate a new version of the selected report and transmit the new version of the report's respective recipient. In some implementations, the new version may be generated based on the same attribution rules that are used to generate the current version of the selected report. Additionally or alternatively, in some implementations, the new version may be generated based on one or more attribution rules that are not used in generating the current version of the selected report. Additionally or alternatively, in some implementations, the new version of the attribution report may be generated based on the same analytics report that is used in generating the current version of the selected report. Additionally or alternatively, in some implementations, the new version of the attribution report may be generated based on a different analytics report that the one used to generate the current version of the selected report. After the new version of the attribution report is generated, the new version of the attribution report may be automatically transmitted to the same recipient to which old version of the attribution report was transmitted.

In some implementations, when the input component 1714 c is selected, the device displaying the management screen 1431 may display a menu allowing the user to select one or more analytics reports that are available to the AVP 1312. In response to detecting a selection of one or more of the analytics reports, the device displaying the management screen 1431 may transmit to the AVP 1312 an indication of the selected analytics report(s). Afterwards, the AVP 1312 may use the indication to retrieve the selected analytics report(s) from the memory 305 and/or from one of the advertising platforms 1308 and use the retrieved analytics report to generate the new version of the selected attribution report.

In some implementations, when the input component 1714C is selected by an advertiser, the device displaying the management screen 1431 (e.g., the advertiser client device 1306A) may present a menu allowing the advertiser to select and/or specify one or more attribution rules. In response to detecting a selection of one or more of the analytics report, the device displaying the management screen 1431 may transmit to the AVP 1312 an indication of the selected (or specified) attribution rules. Afterwards, the AVP 1312 may use the indication to retrieve the selected (or specified) attribution rules to generate the new version of the attribution report.

By the present disclosure, a product feed or product catalog may be periodically sent to a dynamic commission engine (DCE). Based on a variety of factors or variables, the DCE will apply a commission rule upon the completion of a transaction. The commission rule may be dynamically updated by the client, e.g., periodically (e.g., daily), or the commission rule may contain a set of logic to apply different rules upon the occurrence of various conditions, such as the values for client defined or predefined variables being a certain number or quantity. For each of the products within the product feed or product catalog, variables (e.g., remaining inventory) may be defined and may be provided an updated value. As described above, the attribution report 1421A identifies an advertiser ID with a completed transaction and also identifies a product ID. The DCE contains an updated profile for the advertiser and the product such that upon an indication that there has been a completed transaction identifies the corresponding advertisement placement profile and product profile and an appropriate commission rule that is to be applied for such a profile and/or the client may modify, via an associated interface, the commission that is to be applied for that particular transaction in a dynamic fashion, thereby providing very particularized and/or customized commissions that are unique to the circumstances or characteristics of a given transaction.

Referring to FIG. 18 , a dynamic commission engine (DCE) 1800 will now be described. The DCE 1800 may include one or more servers, which may include a processor 1802, a communications interface 1804, and a memory 1806. The processor 1802 may be the same as the processor 201, the communications interface 1804 may be the same as the communications interface 203, the memory 1806 may be the same as the memory 205. The memory 1806 may include a client product profile 1808, an advertisement placement profile 1818, and/or commission rules 1820.

The DCE 1800 may be included in the advertiser client device 105 that is described above. Further, at step 1614 (FIG. 16 ), the presented management screen may also include a user interface 2000 (FIG. 19 ) for inputting values for variables that are associated with product information and advertisement placement information. Each of the values that are inputted in the user interface 2000 form a client product profile 1808 and an advertisement placement profile 1818, which are each stored in a memory 1806. The DCE calculated a commission or modified commission for each transaction corresponding to an associated client product profile 1808 and advertisement placement profile 1818 by applying commission rules 1820 as specified by the client.

The client product profile 1808 may include: a product identification (ID) 1810 for the client product, a margin 1812 for the client product, an inventory count 1814 for the client product, and/or any additional information 1816 that is specified by the advertiser for the advertiser product.

The advertisement placement profile 1818 may include: an advertiser 1820, a publisher 1822, and publisher category 1824. The publisher category 1824 may refer to a category of website, such as, a content site (e.g., New York Times), a discount website (e.g., Rakuten or CouponCabin), a review website (e.g., TopTenReviews), a search engine or website (e.g., Google), or social media (e.g., Instagram or Facebook), etc.

The DCE 1800 is advantageous in providing more particularized Advertisements that are placed on highly trafficked websites in prominent areas on the website are more likely to receive clicks or hits than advertisements that are placed on more obscure websites with less traffic and/or when less prominently displayed on websites. Similarly, advertisements that result in completed transactions for client products with high margins would result in greater profits to the client and thus may result in a corresponding higher commission.

A user interface 2000 for entering product information and/or advertisement (ad) placement information is shown in FIG. 19 . The user interface 2000 may include UI components 2002, 2004, 2006, 2008, 2010, 2012, 2014, and/or 2016. The UI component 2002 may be used to specify a product ID. The UI component 2002 may provide a dropdown menu to select amongst a list of product IDs.

For example, the UI components 2002, 2004, 2006, and 2007 may be associated with the product information for a given advertised product. The UI component 2002 may be a product ID, the UI component 2004 may be a margin, and the UI component 2006 may be the current inventory count for that product. The UI component 2007 may be additional custom variables that may be specified by the client. It should be noted that the UI components 2002, 2004, 2006, and 2007 are merely exemplary; different variables or combinations of variables may be specified by the client. The UI components 2002, 2004, and 2006, which correspond to the modules 1810, 1812, and 1814 of the client product profile 1808, may include an input through which a value may be entered by the client. Similarly, the UI components 2008, 2010, 2012, which correspond to the modules 1820, 1822, and 1824 of the advertisement placement profile 1818, may include an input through which a value may be assigned by the client. For example, the client may override such stored variable values and/or may manually enter values (e.g., by entering text or by selecting from a dropdown menu) for each of the variables associated with the client product profile 1808 and/or the advertisement placement profile 1818 via the user interface 2000. However, alternatively, the variables of the client product profile 1808 and the advertisement placement profile 1818 may be uploaded automatically through a product feed or product catalog.

Logic or rules for calculating the commission upon a completed transaction may be entered by the client via the interface 2000 via input 2016 for the commission rule or logic. When the commission rule or logic is entered using the input 2016, the commission rules or logic 1826 of the DCE 1800 are updated. The commission rule or logic may include a plurality of rules or functions based on the variables 1810, 1812, 1814, 1816, 1820, 1822, 1824 and depending on the values of these variables, a particular function may be applicable.

The user interface 2000 for entering product information and/or advertisement (ad) placement information is shown in FIG. 19 . The user interface 2000 may include UI components 2002, 2004, 2006, 2008, 2010, 2012, 2014, and/or 2016. UI menus or tables corresponding to these UI components are shown in FIGS. 20A-20E. The UI component 2002 may be used to specify a product ID. The UI component 2002 may provide a dropdown menu to select amongst a list of product IDs.

As discussed above, the attribution verification platform (AVP) may provide an attribution report 1421 a that includes a commission. In an embodiment of the present disclosure, the commission that calculated for the publisher, i.e., the publisher commission 418 may instead be provided by the DCE 1800 and/or the publisher commission 418 may be modified by a commission modifier, e.g., a multiplier that is provided based on the specific characteristics or values of the variables for that are received and/or stored by the DCE 1800 for specific products advertisers, publishers, and/or ads, etc.

The UI component 2004 may be used to specify the margin for the associated product, e.g., the percentage of the sale price that remains as profit. As shown in FIG. 21A, the UI component 2004 may provide a table having rows and columns in which margin ranges may be inputted and a corresponding multiplier for that margin range may be entered. For example, the margin percentage, i.e., % of the sale price that is profit, may be grouped into groupings A1, A2, A3, and A4, each of which corresponds to a margin percentage range of from 0 up to 25, from 25 up to 50, from 50 up to 75, and above 75, respectively. The client may provide a multiplier for each of those groupings A1, A2, A3, and A4, which may be, for example, 0.25, 0.5, 0.75, and 1, respectively.

The UI component 2006 may provide a means to input the inventory count and a desired multiplier for such an inventory count. For example, the UI component 2006 may provide a table having rows and columns in which the inventory count is divided into groupings B1 and B2. The grouping B1 may correspond to an inventory count that is less than 1,000 and the grouping B2 may correspond to an inventory count that is 1,000 or greater. The grouping B1 may be assigned a multiplier of 0.5 and the grouping B2 may be assigned a multiplier of 1.

The UI component 2008 may provide a dropdown menu consisting of a list of website types, e.g., news, retail, social, entertainment, search engines. As shown in FIG. 20C, the UI component 2008 may provide a table having rows and columns in which the website types are divided into different groupings or categories of advertisers. For example, as shown in FIG. 20C, the advertiser types may be divided into categories or groupings C1, C2, C3, C4, corresponding to news, retail, entertainment, and search. It should be noted that these categories or groupings may be modified to include different or additional categories, e.g., social or social media.

The UI component 2010 may provide a dropdown menu consisting of different publishers which may be grouped according to tiers. For example, as shown in FIG. 20D, the UI component 2010 may provide a table having rows and columns in which various ad placements on a website are listed in groupings D1-D6. Each grouping may include a single or a plurality of different types or tiers of publishers. For each of the groupings, a multiplier may be assigned for modifying the commission.

The UI 2012 may provide a dropdown menu consisting of a list of publisher categories. The UI 2012 may provide a table having rows and columns in which website tiers may be associated with a grouping E1-E4 and an associated website tier, client provided multiplier. For example, E1 may correspond to content sites, E2 may correspond to discount sites, E3 may correspond to review sites, and E4 may correspond to social sites. The client may associate a weighting factor or multiplier to each of the categories. Additional information that may be specified by the client as provided by the UI component 2014 provides the client with an opportunity to specify additional metrics that are relevant to a particular product or advertisement. Such additional information may include, for example, a metric such as advertisement relevance rank, e.g., high, medium, low. For example, if the website is focused on motorcycles and the product is a motorcycle helmet, the relevance rank may be high; whereas if the product is a leather jacket, the relevance rank may be medium as the product may be appealing for protective purposes for motorcycle riders but has a more general appeal. Other information may include location or language and/or other metrics that are relevant to determine the value of a particular website as more targeted advertisements are more likely to result in completed sales transactions.

As shown in FIG. 22 , a method 3000 of dynamically calculating a commission for a transaction or prospective future transaction is described with respect to FIG. 20 . It should be understood that the steps of the method 300 need not necessarily be performed in a particular order unless otherwise explicitly noted.

As shown in FIG. 22 , at Step 3002, a product feed or a product catalog including a listing of one or more products may be received. The listing of the products may provide such information as product IDs that are to be or that are advertised and may additionally include or be assigned variables or characteristics for each product. Such variables or characteristics (e.g., inventory count, margins, etc.) may be continually or periodically updated. At Step 3004, for each product that is contained in the listing of the one or more products that was received at Step 3002, create a client product profile. At Step 3006, for each product that is contained in the listing of the one or more products that was received at Step 3002, create an advertisement placement profile. At Step 3008, provide a dynamic commission engine (DCE) 1800 that stores in its memory a client product profile and an advertisement placement profile. At Step 3010, provide a user interface that includes an input for entering and/or dynamically changing or adjusting a commission rule or logic that is based on the client product profile and/or the advertisement placement profile. At Step 3012, one of a plurality of commission rules or logic that were defined within module 1826 of the DCE 1800 may be applied depending on the value of variables that are updated for the modules defining the profiles 1808 and/or 1818. It should be noted that there may be a single rule or that there may be alternatively applied rules that are defined by the commission rules or logic 1826. At Step 3014, for each completed transaction contained in the attribution report 1421 a, calculate a commission based on the corresponding product profile and/or advertiser profile for that completed transaction. At Step 3016, the calculated commission may be associated with a corresponding publisher ID 412 for any the particular transaction 402 that utilized a particular client profile having those particular variables and a particular advertisement placement profile having those particular variables.

In an embodiment, to facilitate a more secure environment in which data is better secured and not shared with any unauthorized party, a setup process for a client to work in an affiliate channel is disclosed herein with reference to FIG. 23 which provides a flowchart of steps to setup an affiliate channel or platform. The affiliate channel or platform may refer to an advertising platform that is affiliated with any of the advertising publishers.

Preferably, the tracking tool that is used may be a pure server side solution that is fully integrated with the affiliate platform and with the AVP described herein. As a pure server-side solution, PERNIX is designed to pull complex data from multiple attribution, analytics, partnership, and affiliate platforms, and align all performance and costs to an advertiser's source of attribution truth. This gives advertisers a definitive look at how their marketing investment is performing at every touchpoint throughout the digital marketing ecosystem. Pernix fuses attribution and analytical data with program tracking to make authentic, trackable program performance a reality.

With respect to FIG. 23 , a process 4000 for integrating an affiliate platform is described. At step 4002, a client may select or choose an affiliate platform. Advantageously, this provides a means for the client to select an affiliate platform and/or to have an integrated system that requires no third-party affiliate. At step 4004, the affiliate platform may be integrated with a reporting tool, i.e., a tracking tool, such as PERNIX. The tracking tool may provide data for the analytics and attribution report described above, as well as a product feed and information regarding advertisement placement. At step 4006, the affiliate platform may be utilized to recruit publishers. At step 4008, the publisher accounts that have been recruited may be funded. At step 4010, the publisher may post a promotion or an advertisement.

FIGS. 1-23 are provided as an example only. At least some of the elements discussed with respect to these figures can be arranged in different order, combined, and/or altogether omitted. Although not shown in the figures, the advertising platform 108 and the analytics platform 110 may each have a hardware structure that is the same or similar to the hardware structure of the AVP 112. When any of the processes discussed throughout the disclosure is performed by one of the analytics platform 110 and the advertising platform 108, the process may be performed by the processor of that platform possibly in conjunction with other hardware. When any of the processes discussed throughout the disclosure is performed by one of the analytics platform 110 and the advertising platform 108, the memory of that platform may store an advertiser profile that is the same or similar to the advertiser profile 307 and/or at least one of an attribution report, an analytics report, and a corrected attribution report. It will be understood that the provision of the examples described herein, as well as clauses prefaced with “such as,” “e.g.”, “including”, “in some aspects,” “in some implementations,” and the like should not be interpreted as limiting the disclosed subject matter to the specific examples.

While the present disclosure may have been shown and described with reference to various embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as defined by the appended claims and their equivalents. In other words, the various exemplary embodiments disclosed in the present specification and drawings are merely specific embodiments to facilitate an understanding of the various aspects of the present disclosure and are not intended to limit the scope of the present disclosure. Therefore, the scope of the present disclosure is defined not by the detailed description of the disclosure but by the appended claims, and all differences within the scope should be construed as being included in the present disclosure. 

1. A system comprising: a memory and at least one processor operatively coupled to the memory, the at least one processor being configured to: receive a product feed including one or more products; receive a plurality of transaction records including one or more transactions; for each of the one or more transactions, generate an attribution report, wherein the attribution report attributes each of the one or more transactions to a publisher; associate a publisher with each of the one or more transactions; associate each of the one or more products of the product feed with the one or more transactions; for each of the one or more products of the product feed, generate a product profile, the product profile including one or more variables; apply a commission rule based on the one or more variables of the product profile and the attribution report; obtain an analytics report including one or more transaction records corresponding to an associated advertisement associated with the advertiser; generate the attribution report based on the analytics report, the attribution report providing an indication associating a publisher with a completed transaction; and validate the analytics report, wherein the validation of the analytics report includes a determination of an error in the analytics report and correcting the analytics report.
 2. The system of claim 1, wherein the at least one processor is further configured to: provide a user interface for a publisher to provide the commission rule.
 3. The system of claim 2, wherein: the user interface provides one or more inputs for the publisher to select variables for the product profile.
 4. The system of claim 2, wherein when the one or more products is featured in an advertisement, the at least one process further configured to: generate an advertisement placement profile for each of the one or more products.
 5. The system of claim 4, wherein: the user interface provides one or more inputs for the publisher to select variables for the advertisement placement profile.
 6. The system of claim 1, wherein the at least one processor is further configured to: select an affiliate platform; integrate the affiliate platform with a reporting tool; recruit one or more publishers through the affiliate platform; and fund publisher accounts via the affiliate platform.
 7. The system of claim 6, wherein: the reporting tool provides data for the attribution report.
 8. The system of claim 1, wherein: the product feed includes data that automatically results in the product profile being generated.
 9. The system of claim 8, wherein: the commission rule includes a set of logic including a plurality of functions for calculating a commission for the publisher, wherein one of the plurality of functions for calculating the commission is selected based on the values of variables associated with the product profile.
 10. The system of claim 4, wherein: the commission rule includes logic that is additionally based on at least the advertisement placement profile. 